package cn.chengpengper.im.common.domain.model;

import cn.chengpengper.im.common.domain.enums.IMTerminalType;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/*@formatter:off*/

/**
 * ____________________
 * < 神兽护体，永无bug! >
 * --------------------
 *
 * @author huchengpeng
 * @version v1.0.0
 * @date 2024/9/8 17:55
 * @description 私聊消息
 */

/*@formatter:on*/

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ImPrivateMessage<T> {

    /**
     * 消息发送者
     */
    private ImUserInfo sender;

    /**
     * 消息接收者
     */
    private Long receiveId;

    /**
     * 接收者终端类型
     */
    private List<Integer> receiveTerminals = IMTerminalType.codes();

    /**
     * 是否发送给自己的其他终端
     */
    private Boolean sendSelf = Boolean.TRUE;

    /**
     * 是否需要回推发送结果
     */
    private Boolean sendResult = Boolean.TRUE;

    /**
     * 消息内容
     */
    private T data;
}
